Backend Bug Finder — a platform for effective compiler fuzzing

نویسندگان

چکیده

Introduction: The standard way to check the quality of a compiler is manual testing. However, it does not allow cover vast diversity programs that can be written in target programming language. Today, addition tests there are many automated testing methods, among which fuzzing one most powerful and useful. A fuzzer tool generates random program language checks how works this Purpose: To develop platform for and, based on it, Kotlin Results: We have developed Backend Bug Finder is. chosen mutation-based approach as method generating programs. First, an existing entered mutator input then transformed some way. Mutations both trivial, example, replacing arithmetic operators with others, complex, changing structure program. Next, resulting fed following its operation. test oracle detect three types errors: crashes, miscompilations, performance degradations. If error detected, case into post-processing module, where reduction deduplication algorithms applied. approbation, showed applicability proposed finding errors modern compilers. Practical relevance: Over year half work, our has found thousands different bugs, more than 200 were sent developers, 80 been fixed.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Multithreaded Compiler Backend for High-level Array Programming

Whenever large homogeneous data structures need to be processed in a non-trivial way, e.g. in computational sciences, image processing, or system simulation, high-level array programming in the style of APL offers a far more concise and abstract approach than traditional scalar languages such as C/C++ or FORTRAN-77. The same sort of applications often can also be characterized as performance cr...

متن کامل

A Typing System for an Optimizing Multiple-Backend Tcl Compiler

This paper describes the typing system used by the ICE 2.0 Tcl compiler[Rouse]. The typing system tracks the usage of variables and allows the compiler to reduce the number of instructions required to carry out Tcl instructions. It will also allow future improvements in code emission by making it possible to carry out standard compiler analyses and optimizations[Aho].

متن کامل

Extending a Compiler Backend for Complete Memory Error Detection

Technological advances drive hardware to ever smaller feature sizes, causing devices to become more vulnerable to faults. Applications can be protected against errors resulting from faults by adding error detection and recovery measures in software. This is popularly achieved by applying automatic program transformations. However, transformations applied to intermediate program representations ...

متن کامل

Staccato: A Bug Finder for Dynamic Configuration Updates (Artifact)

This artifact is based on Staccato, a tool for finding errors in dynamic configuration update (DCU) implementations. Dynamic configuration update refers to configuration changes that occur at runtime without program restart. Errors in DCU implementations occur when stale data— computed from old configurations—or inconsistent data—computed from different configurations—are used. Staccato uses a ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Informatsionno-upravliaiushchie sistemy

سال: 2022

ISSN: ['1684-8853', '2541-8610']

DOI: https://doi.org/10.31799/1684-8853-2022-6-31-40